在前面的主題曾用過Collection Runner
來進行多個請求連續執行,適合多個請求間有執行順序上要求的場景。但有時候我們需要的是測試同一個API,並且每次執行時搭配不同的參數,透過大量的測資來確保API的行為正確。
今天的主題就就是Collection Runner
的另一個功能,可以事先把大量測資儲存在檔案裡,將測資依序讀出當作請求的參數。記得先將 Day 23: Data files複製到自己的工作區,開始體驗這個功能。
回到自己的工作區,打開今天的資料夾Data files
,從右邊文件區可以看到今天挑戰的指示,步驟如下
準備測資,這邊有兩個方法
Region,boba
Hawaii,100
California,96
Nevada,83
新增請求:
boba
GET
編輯 Pre-requests
由於我們預期從檔案讀取資料,來當作參數來傳遞,所以必須在執行請求前準備好參數,因此腳本寫在pre-requests,這樣一來就能讓參數跟著變動。
//逐次讀出Region, boba的值
let region = pm.iterationData.get("Region");
let boba = pm.iterationData.get("boba");
console.log(region, boba)
//將值放到變數
pm.collectionVariables.set("Region", region);
pm.collectionVariables.set("boba", boba);
編輯 Tests
為了確保API回傳的結果與當前變數一致,所以透過Tests
在執行請求結束後來確認
var response = pm.response.json();
pm.test("Check response", function () {
pm.expect(pm.response.text()).to.include(pm.collectionVariables.get("Region"));
pm.expect(pm.response.text()).to.include(pm.collectionVariables.get("boba"));
});
開始批次執行: 執行Collection Run,點擊Select File
並選擇前面準備的csv檔案
載入檔案後,可以透過Preview
確認是否能正確解析檔案
執行結果如下,資料有多少筆,請求就會執行多少次,每一個請求都會根據 pre-request
-> request
-> test
的順序進行,也就是準備變數
-> 發送請求
-> 確認回應
,從Console也能看到執行過程輸出的log,可以用來確認是否每次的請求都有跟著變動
以上就是關於Collection run + Data files的使用方式,是個相當實用且充滿彈性的功能。其他延伸閱讀可以參考
那麼今天就到這邊,我們明天見~